<!DOCTYPE html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta http-equiv="X-UA-Compatible" content="ie=edge">
	<title>Halo配置程序安装</title>
	<link rel="stylesheet" type="text/css" href="./install_data/halo.css" />
	<script src="./install_data/halo.js"></script>
</head>
<body>
	<!-- 配置程序---开始编程 -->
	<!-- 判断是否已经配置过文件---防止再次配置的BUG漏洞 导致的破坏性 -->
	<?php
		// 保存页面代码解析一致格式 防止乱码
		header("Content-type:text/html;charset=utf-8");
		// 判断是否已经安装过程序
		if(file_exists('install.lock')){
			exit("<p class='cfpzbg'><span class='cfpz'>已经安装过配置程序! 如果需要重新安装请先删除配置文件!</span></p>");
		}
	?>
	
	<!-- ^HTML配置页面区域^ -->
	<div class="install">
		<!-- 头部进度展示界面 -->
		<div class="install_bg">
			<h3>Halo配置程序安装</h3>
			<ul>
				<li id="bgli1" class="install_bg_xz"><b>1</b><span>欢迎使用</span></li>
				<li id="bgli2"><b>2</b><span>初始化配置</span></li>
				<li id="bgli3"><b>3</b><span>安装完成</span></li>
			</ul>
		</div>
		<div class="install_bgjz">
			<div id="install_bgjz_zs"></div>
		</div>
		
		<!-- 声明页面 -->
		<div class="install_state" id="install_state">
			<h2>欢迎使用 - Halo配置程序安装</h2>
			<h3>安装说明</h3>
			<p>本安装程序为开源式的配置程序安装，如果您并非官网下载的源码，请仔细检查代码后再进行安装！如果服务器环境符合要求[ 大多数符合，不符合条件的请联系 星环 进行对应升级！]，都可进行安装成功！<br/>
			本程序主要针对配置安装小白和一些非常重要的数据的快速配置开发所研究！如果有更好的改进方案，可以一起探讨进步！
			</p>
			<h4>程序说明及版本维护</h4>
			<p>
				[1] 当前版本为：halo_testing 1.0.1 <br/>
				[2] 开发者：来自水星附近的 环星 <br/>
				[3] 当前开发页面的页面布局+页面素材均来自网络，如有侵权 请联系更换素材！<br/>
				[4] 本当前程序承诺：不存在在程序内安装后门等行为！（官方版本,源码为开发源码,非官方源码概不负责！）<br/>
				[5] 源码下载地址：blog.xhto.cn 星环博客官方网站统一管理 <br/>
			</p>
			<div class="ydxx" id="ydxx" onclick="inclick()"><div class="confirm_k" id="confirm_k"></div><span id="confirm_w"> 我已经仔细阅读以上信息内容！并确定安装源码无误！</span></div>
			<div class="confirm" onclick="pagetion()">我准备好了+开始安装程序</div>
		</div>
		
		<!-- 配置页面 -->
		<div class="install_data" id="install_data">
			<h2>确认您的配置</h2>
			<form action="install.php" method="post" name="form1">
				<h3>数据库配置</h3>
				
				<div class="indata_k">
					<label>数据库地址</label>
					<input type="text" name="host" value="localhost">
					<p>默认的数据库地址为 “localhost”</p>
				</div>
				<div class="indata_k">
					<label>数据库端口</label>
					<input type="text" name="port" value="3306">
					<p>如果您不知道此项的意义，请保留默认设置</p>
				</div>
				<div class="indata_k">
					<label>数据库用户名</label>
					<input type="text" name="dbname" value="root">
					<p>数据库的登录账户名</p>
				</div>
				<div class="indata_k">
					<label>数据库密码</label>
					<input type="password" name="dbpsw" value="">
					<p>数据库的登录密码</p>
				</div>
				
				<h3>创建ROOT您的管理员账号</h3>
				
				<div class="indata_k">
					<label>创建用户表名</label>
					<input type="text" name="dbtuser" value="tuser">
					<p>这可自定义存放用户的数据库表名</p>
				</div>
				<div class="indata_k">
					<label>管理员账号</label>
					<input type="text" name="adminname" value="admin">
					<p>设置登录后台的管理员账号</p>
				</div>
				<div class="indata_k">
					<label>管理员密码</label>
					<input type="password" name="adminpsd" value="">
					<p>请不要设置过于简单的密码</p>
				</div>
				<div class="indata_k">
					<label>再次输入管理员密码</label>
					<input type="password" name="adminpsd2" value="" onchange="ondbpsw()">
					<p id="onpsw">两次密码需要一致</p>
				</div>
		
				<div class="indata_load">
					<p id="dbts"></p>
					<input type="submit" name="submit" value="确认完毕 + 开始安装" onclick="return ondb()"/>
				</div>
			</form>
		</div>
	
	<!-- 写入install.lock防二次修改数据库配置 -->
	<?php
		if ($_SERVER["REQUEST_METHOD"] == "POST")
		{
			if($_POST['host'] != "" && $_POST['port'] != "" && $_POST['dbname'] != "" && $_POST['dbpsw'] != "" && $_POST['dbtuser'] != "" && $_POST['adminname'] != "" && $_POST['adminpsd'] != "")
			{
				// 连接成功 => 进行写入
				$host=$_POST['host'];   // 数据库地址
				$port=$_POST['port'];   // 数据库端口
				$dbname=$_POST['dbname'];   // 数据库账号
				$dbpsw=$_POST['dbpsw'];   // 数据库密码
				$dbtuser=$_POST['dbtuser'];   // 用户表名
				$adminname=$_POST['adminname'];   // 管理员账号
				$adminpsd=$_POST['adminpsd'];   // 管理员密码
				
				// 判断是否连接成功 - 失败/成功
				@$conn = mysqli_connect($host, $dbname, $dbpsw);
				if (!$conn) {
	?>
				<script language="JavaScript">
					// 页面切换
					document.getElementById("install_state").style.display = "none";
					document.getElementById("install_data").style.display = "block";
					// 进度条调整
					document.getElementById("install_bgjz_zs").classList.remove("width33");
					document.getElementById("install_bgjz_zs").classList.add("width66");
					// 文字进度调整
					document.getElementById("bgli1").classList.remove("install_bg_xz");
					document.getElementById("bgli2").classList.add("install_bg_xz");
				</script>
				<div class="popup" id="popup">
					<div class="popup_x" onclick="popup_x()">×</div>
					<p class="popup_w">数据库连接异常！<br />数据库<span>账号</span>或<span>密码</span>出现错误！<br /><b>请重新填写信息！</b></p>
				</div>
	<?php
					exit();
				}
	?>
		<!-- 完成配置页面 -->
		<script language="JavaScript">
			// 页面切换
			document.getElementById("install_state").style.display = "none";
			document.getElementById("install_data").style.display = "none";
			// 进度条调整
			document.getElementById("install_bgjz_zs").classList.remove("width66");
			document.getElementById("install_bgjz_zs").classList.add("width99");
			// 文字进度调整
			document.getElementById("bgli1").classList.remove("install_bg_xz");
			document.getElementById("bgli2").classList.remove("install_bg_xz");
			document.getElementById("bgli3").classList.add("install_bg_xz");
		</script>
		<div class="install_complete" id="insc">
			<div class="insc_zs">
				<h2>管理员信息：</h2>
				<p>管理员账号：<span><?php echo $adminname ?></span></p>
				<p>管理员密码：<span><?php echo $adminpsd ?></span></p>
				<a href="javscript:window.location.host;">返回登录</a>
			</div>
			<p class="footer">感谢信任使用Halo配置程序安装！即使一点不懂的你也不可以放弃自己，我们一起加油！<span>环游是无趣 至少可以陪着你~</span></p>
		</div>
	</div>
	<!-- &HTML配置页面区域& -->
	<?php
			}
			
			// 写入本地 [config.php] 文件
			$config_file = "config.php";
			$config_strings = "<?php \n";
			$config_strings .= "\$host = \"".$host."\";\n";
			$config_strings .= "\$port = \"".$port."\";\n";
			$config_strings .= "\$dbname = \"".$dbname."\";\n";
			$config_strings .= "\$dbpsw = \"".$dbpsw."\";\n";
			$config_strings .= "\$conn = mysql_connect(\$host,\$dbname,\$dbpsw);\n";
			$config_strings .= "?>";
			$halo_data = fopen($config_file,"wb");
			fwrite($halo_data,$config_strings);
			fclose($halo_data);
			
			$lockfile = "install.lock";
			$halo_tips = fopen($lockfile,"w");
			fwrite($halo_tips,"Halo安装程序已经完成安装！如需重新安装配置，删除此配置在进行访问!");
			fclose($halo_tips);
		}
	?>
</body>
</html>